1. Field
This application relates to network elements and, more particularly, to application specified steering policy implementation in a data plane of a network element.
2. Description of the Related Art
Data communication networks may include many switches, routers, and other devices coupled to and configured to pass data to one another. These devices will be referred to herein as “network elements”. Data is communicated through the data communication network by passing protocol data units, such as frames, packets, cells, or segments, between the network elements by utilizing one or more communication links. A particular protocol data unit may be handled by multiple network elements and cross multiple communication links as it travels between its source and its destination over the network.
FIG. 1 illustrates one example of a communication network 10. As illustrated in FIG. 1, subscribers 12 access the network 10 by interfacing with one or more Provider Edge (PE) network elements 14. The provider edge network elements collect traffic from multiple subscribers and multiplex the traffic onto the network backbone, which includes multiple Provider (P) network elements 16 connected together. The subscribers 12 thus may obtain access to the network 10 to exchange data with other subscribers, to obtain access to networked resources, or otherwise to take advantage of the communication services provided by the communication network.
The network elements on the communication network, such as subscriber gateways 12, provider edge network elements 14, and provider network elements 16, communicate with each other using predefined sets of rules, referred to herein as protocols. Multiple protocols exist, and are used to define aspects of how the communication network should behave, such as how the network elements should identify each other on the network, the format that the data should take in transit, and how the information should be reconstructed once it reaches its final destination. Examples of several protocols include Asynchronous Transfer Mode (ATM), Frame Relay (FR), Ethernet, Transport Control Protocol (TCP), Internet Protocol (IP), Point-to-Point Protocol (PPP), and Multi-Protocol Label Switching (MPLS), although there are probably more than 100 other protocols as well that may be used to govern aspects of communications taking place over the network.
As networks have increased in size and sophistication, the number of applications required to be supported on a given network element has increased dramatically. The applications generally allow the network element to process control and/or data packets to allow particular protocols to be implemented and services to be provided by the network element. Depending on the particular application, more than one instances of a given application may need to be started on a network element to enable traffic to be segregated or to enable load sharing to be implemented between the processors in the network element.
One way to enable a network element to handle larger numbers of applications is to provide multiple processors in the network element. A large network element may include several processors such as CPUs and Network Processing Units (NPUs), to enable it to handle the load placed on the network element in connection with handling data traffic and in connection with providing network services.
Although multiple processors may enable packets to be processed more efficiently, the use of multiple processors requires the packets to be directed within the network element to the correct processor. Accordingly, it would be advantageous to provide a way to enable applications to specify steering policies, and to provide a way to implement the steering policies in a data plane of a network element.